1
从结构体到抽象数据类型
AI037Lesson 11
00:00

从一个 struct 到一个 抽象数据类型(ADT) 标志着从一个“透明盒”(每个内部连接都暴露在外)转变为一个“黑箱”,其中 接口实现分离。这种转变确保了 封装:用户通过调用如 readcombine 等函数进行交互,而无需了解收入是如何计算或存储的。

1. 类架构

每个类都定义了一个 唯一类型标识。即使两个类具有完全相同的成员,C++ 也认为它们是不兼容的。使用 typedef前向声明 (例如, class Screen;)使我们能够在保持抽象性的同时设计复杂的关系。我们通常使用 合成版本 的构造函数,例如 Sales_data() = default;,以保持内置类型的便利性($$total = trans;$$)。

ADT “黑箱”实现(私有)readprintadd公共接口

2. 非成员接口函数

read 这样的函数是 非成员类相关函数。它们属于接口的一部分,但不属于类本身,通常需要 友元关系 来访问私有数据。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>